<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> 
<head> 
<link type="text/css" rel="stylesheet" href="style.css">
<!-- Copyright 2001 The Open Group, All Rights Reserved --> 
<title>Threads Index </title>
</head> 
<body bgcolor=white>
<center>
<hr size="2" noshade>
The Open Group Base Specifications, Issue 6<br>
IEEE Std 1003.1, 2004 Edition<br>
Copyright &copy; 2001-2004 The IEEE and The Open Group
<hr size="2" noshade>
</center>
<h3><font  face="Helvetica">
<IMG ALIGN=TOP SRC="../images/index.gif" ALT="">Threads Index
</font></h3>

<ul>
<li type="disc"><a href="../functions/xsh_chap02_09.html#tag_02_09">Threads</a>
<ul>
<li type="disc"><a href="../functions/xsh_chap02_09.html#tag_02_09_01">Thread-Safety</a></li>

<li type="disc"><a href="../functions/xsh_chap02_09.html#tag_02_09_02">Thread IDs</a></li>

<li type="disc"><a href="../functions/xsh_chap02_09.html#tag_02_09_03">Thread Mutexes</a></li>

<li type="disc"><a href="../functions/xsh_chap02_09.html#tag_02_09_04">Thread Scheduling</a>
<ul>
<li type="disc"><a href="../functions/xsh_chap02_09.html#tag_02_09_04_01">Thread Scheduling Attributes</a></li>

<li type="disc"><a href="../functions/xsh_chap02_09.html#tag_02_09_04_02">Thread Scheduling Contention Scope</a></li>

<li type="disc"><a href="../functions/xsh_chap02_09.html#tag_02_09_04_03">Scheduling Allocation Domain</a></li>

<li type="disc"><a href="../functions/xsh_chap02_09.html#tag_02_09_04_04">Scheduling Documentation</a></li>
</ul>
</li>

<li type="disc"><a href="../functions/xsh_chap02_09.html#tag_02_09_05">Thread Cancelation</a>
<ul>
<li type="disc"><a href="../functions/xsh_chap02_09.html#tag_02_09_05_01">Cancelability States</a></li>

<li type="disc"><a href="../functions/xsh_chap02_09.html#tag_02_09_05_02">Cancelation Points</a></li>

<li type="disc"><a href="../functions/xsh_chap02_09.html#tag_02_09_05_03">Thread Cancelation Cleanup Handlers</a></li>

<li type="disc"><a href="../functions/xsh_chap02_09.html#tag_02_09_05_04">Async-Cancel Safety</a></li>
</ul>
</li>

<li type="disc"><a href="../functions/xsh_chap02_09.html#tag_02_09_06">Thread Read-Write Locks</a></li>

<li type="disc"><a href="../functions/xsh_chap02_09.html#tag_02_09_07">Thread Interactions with Regular File Operations</a></li>

</ul>
</li>

</li>

<li type="disc">Functions and Headers</li>
<ul>
<li type="disc"><a href="../basedefs/pthread.h.html">pthread.h</a> - threads 
<li type="disc"><a href="../functions/pthread_atfork.html">pthread_atfork()</a> - register fork handlers 
<li type="disc"><a href="../functions/pthread_attr_destroy.html">pthread_attr_destroy()</a>, pthread_attr_init - destroy and initialize threads attributes object 
<li type="disc"><a href="../functions/pthread_attr_getinheritsched.html">pthread_attr_getinheritsched()</a>, pthread_attr_setinheritsched - get and set inheritsched attribute (<b>REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_attr_getschedparam.html">pthread_attr_getschedparam()</a>, pthread_attr_setschedparam - get and set schedparam attribute 
<li type="disc"><a href="../functions/pthread_attr_getschedpolicy.html">pthread_attr_getschedpolicy()</a>, pthread_attr_setschedpolicy - get and set schedpolicy attribute (<b>REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_attr_getscope.html">pthread_attr_getscope()</a>, pthread_attr_setscope - get and set contentionscope attribute (<b>REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_attr_getstackaddr.html">pthread_attr_getstackaddr()</a>, pthread_attr_setstackaddr - get and set stackaddr attribute 
<li type="disc"><a href="../functions/pthread_attr_getstack.html">pthread_attr_getstack()</a>, pthread_attr_setstack - get and set stack attributes 
<li type="disc"><a href="../functions/pthread_attr_init.html">pthread_attr_init()</a> - initialize threads attributes object 
<li type="disc"><a href="../functions/pthread_attr_setdetachstate.html">pthread_attr_setdetachstate()</a> - set detachstate attribute 
<li type="disc"><a href="../functions/pthread_attr_setguardsize.html">pthread_attr_setguardsize()</a> - set thread guardsize attribute 
<li type="disc"><a href="../functions/pthread_attr_setinheritsched.html">pthread_attr_setinheritsched()</a> - set inheritsched attribute (<b>REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_attr_setschedparam.html">pthread_attr_setschedparam()</a> - set schedparam attribute 
<li type="disc"><a href="../functions/pthread_attr_setschedpolicy.html">pthread_attr_setschedpolicy()</a> - set schedpolicy attribute (<b>REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_attr_setscope.html">pthread_attr_setscope()</a> - set contentionscope attribute (<b>REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_attr_setstackaddr.html">pthread_attr_setstackaddr()</a> - set stackaddr attribute 
<li type="disc"><a href="../functions/pthread_attr_setstack.html">pthread_attr_setstack()</a> - set stack attribute 
<li type="disc"><a href="../functions/pthread_attr_setstacksize.html">pthread_attr_setstacksize()</a> - set stacksize attribute 
<li type="disc"><a href="../functions/pthread_barrierattr_destroy.html">pthread_barrierattr_destroy()</a>, pthread_barrierattr_init - destroy and initialize barrier attributes object (<b>ADVANCED REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_barrierattr_getpshared.html">pthread_barrierattr_getpshared()</a>, pthread_barrierattr_setpshared - get and set process-shared attribute of barrier attributes object (<b>ADVANCED REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_barrierattr_init.html">pthread_barrierattr_init()</a> - initialize barrier attributes object (<b>ADVANCED REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_barrierattr_setpshared.html">pthread_barrierattr_setpshared()</a> - set process-shared attribute of barrier attributes object (<b>ADVANCED REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_barrier_destroy.html">pthread_barrier_destroy()</a>, pthread_barrier_init - destroy and initialize a barrier object (<b>ADVANCED REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_barrier_init.html">pthread_barrier_init()</a> - initialize a barrier object (<b>ADVANCED REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_barrier_wait.html">pthread_barrier_wait()</a> - synchronize at a barrier (<b>ADVANCED REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_cancel.html">pthread_cancel()</a> - cancel execution of a thread 
<li type="disc"><a href="../functions/pthread_cleanup_pop.html">pthread_cleanup_pop()</a>, pthread_cleanup_push - establish cancelation handlers 
<li type="disc"><a href="../functions/pthread_condattr_destroy.html">pthread_condattr_destroy()</a>, pthread_condattr_init - destroy and initialize condition variable attributes object 
<li type="disc"><a href="../functions/pthread_condattr_getclock.html">pthread_condattr_getclock()</a>, pthread_condattr_setclock - get and set the clock selection condition variable attribute (<b>ADVANCED REALTIME</b>) 
<li type="disc"><a href="../functions/pthread_condattr_getpshared.html">pthread_condattr_getpshared()</a>, pthread_condattr_setpshared - get and set the process-shared condition variable attributes 
<li type="disc"><a href="../functions/pthread_condattr_init.html">pthread_condattr_init()</a> - initialize condition variable attributes object 
<li type="disc"><a href="../functions/pthread_condattr_setclock.html">pthread_condattr_setclock()</a> - set the clock selection condition variable attribute 
<li type="disc"><a href="../functions/pthread_condattr_setpshared.html">pthread_condattr_setpshared()</a> - set the process-shared condition variable attributes 
<li type="disc"><a href="../functions/pthread_cond_broadcast.html">pthread_cond_broadcast()</a>, pthread_cond_signal - broadcast or signal a condition 
<li type="disc"><a href="../functions/pthread_cond_destroy.html">pthread_cond_destroy()</a>, pthread_cond_init - destroy and initialize condition variables 
<li type="disc"><a href="../functions/pthread_cond_init.html">pthread_cond_init()</a> - initialize condition variables 
<li type="disc"><a href="../functions/pthread_cond_signal.html">pthread_cond_signal()</a> - signal a condition 
<li type="disc"><a href="../functions/pthread_cond_timedwait.html">pthread_cond_timedwait()</a>, pthread_cond_wait - wait on a condition 
<li type="disc"><a href="../functions/pthread_cond_wait.html">pthread_cond_wait()</a> - wait on a condition 
<li type="disc"><a href="../functions/pthread_create.html">pthread_create()</a> - thread creation 
<li type="disc"><a href="../functions/pthread_detach.html">pthread_detach()</a> - detach a thread 
<li type="disc"><a href="../functions/pthread_equal.html">pthread_equal()</a> - compare thread IDs 
<li type="disc"><a href="../functions/pthread_exit.html">pthread_exit()</a> - thread termination 
<li type="disc"><a href="../functions/pthread_getconcurrency.html">pthread_getconcurrency()</a>, pthread_setconcurrency - get and set level of concurrency 
<li type="disc"><a href="../functions/pthread_getcpuclockid.html">pthread_getcpuclockid()</a> - access a thread CPU-time clock (<b>ADVANCED REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_getschedparam.html">pthread_getschedparam()</a>, pthread_setschedparam - dynamic thread scheduling parameters access (<b>REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_getspecific.html">pthread_getspecific()</a>, pthread_setspecific - thread-specific data management 
<li type="disc"><a href="../functions/pthread_join.html">pthread_join()</a> - wait for thread termination 
<li type="disc"><a href="../functions/pthread_key_create.html">pthread_key_create()</a> - thread-specific data key creation 
<li type="disc"><a href="../functions/pthread_key_delete.html">pthread_key_delete()</a> - thread-specific data key deletion 
<li type="disc"><a href="../functions/pthread_kill.html">pthread_kill()</a> - send a signal to a thread 
<li type="disc"><a href="../functions/pthread_mutexattr_destroy.html">pthread_mutexattr_destroy()</a>, pthread_mutexattr_init - destroy and initialize mutex attributes object 
<li type="disc"><a href="../functions/pthread_mutexattr_getprioceiling.html">pthread_mutexattr_getprioceiling()</a>, pthread_mutexattr_setprioceiling - get and set prioceiling attribute of mutex attributes object (<b>REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_mutexattr_getprotocol.html">pthread_mutexattr_getprotocol()</a>, pthread_mutexattr_setprotocol - get and set protocol attribute of mutex attributes object (<b>REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_mutexattr_getpshared.html">pthread_mutexattr_getpshared()</a>, pthread_mutexattr_setpshared - get and set process-shared attribute 
<li type="disc"><a href="../functions/pthread_mutexattr_gettype.html">pthread_mutexattr_gettype()</a>, pthread_mutexattr_settype - get and set a mutex type attribute 
<li type="disc"><a href="../functions/pthread_mutexattr_init.html">pthread_mutexattr_init()</a> - initialize mutex attributes object 
<li type="disc"><a href="../functions/pthread_mutexattr_setprioceiling.html">pthread_mutexattr_setprioceiling()</a> - set prioceiling attribute of mutex attributes object (<b>REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_mutexattr_setprotocol.html">pthread_mutexattr_setprotocol()</a> - set protocol attribute of mutex attributes object (<b>REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_mutexattr_setpshared.html">pthread_mutexattr_setpshared()</a> - set process-shared attribute 
<li type="disc"><a href="../functions/pthread_mutexattr_settype.html">pthread_mutexattr_settype()</a> - set a mutex type attribute 
<li type="disc"><a href="../functions/pthread_mutex_destroy.html">pthread_mutex_destroy()</a>, pthread_mutex_init - destroy and initialize a mutex 
<li type="disc"><a href="../functions/pthread_mutex_getprioceiling.html">pthread_mutex_getprioceiling()</a>, pthread_mutex_setprioceiling - get and set the priority ceiling of a mutex (<b>REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_mutex_init.html">pthread_mutex_init()</a> - initialize a mutex 
<li type="disc"><a href="../functions/pthread_mutex_lock.html">pthread_mutex_lock()</a>, pthread_mutex_trylock, pthread_mutex_unlock - lock and unlock a mutex 
<li type="disc"><a href="../functions/pthread_mutex_setprioceiling.html">pthread_mutex_setprioceiling()</a> - change the priority ceiling of a mutex (<b>REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_mutex_timedlock.html">pthread_mutex_timedlock()</a> - lock a mutex (<b>ADVANCED REALTIME</b>) 
<li type="disc"><a href="../functions/pthread_mutex_trylock.html">pthread_mutex_trylock()</a>, pthread_mutex_unlock - lock and unlock a mutex 
<li type="disc"><a href="../functions/pthread_once.html">pthread_once()</a> - dynamic package initialization 
<li type="disc"><a href="../functions/pthread_rwlockattr_destroy.html">pthread_rwlockattr_destroy()</a>, pthread_rwlockattr_init - destroy and initialize read-write lock attributes object 
<li type="disc"><a href="../functions/pthread_rwlockattr_getpshared.html">pthread_rwlockattr_getpshared()</a>, pthread_rwlockattr_setpshared - get and set process-shared attribute of read-write lock attributes object 
<li type="disc"><a href="../functions/pthread_rwlockattr_init.html">pthread_rwlockattr_init()</a> - initialize read-write lock attributes object 
<li type="disc"><a href="../functions/pthread_rwlockattr_setpshared.html">pthread_rwlockattr_setpshared()</a> - set process-shared attribute of read-write lock attributes object 
<li type="disc"><a href="../functions/pthread_rwlock_destroy.html">pthread_rwlock_destroy()</a>, pthread_rwlock_init - destroy and initialize a read-write lock object 
<li type="disc"><a href="../functions/pthread_rwlock_init.html">pthread_rwlock_init()</a> - initialize a read-write lock object 
<li type="disc"><a href="../functions/pthread_rwlock_rdlock.html">pthread_rwlock_rdlock()</a>, pthread_rwlock_tryrdlock - lock a read-write lock object for reading 
<li type="disc"><a href="../functions/pthread_rwlock_timedrdlock.html">pthread_rwlock_timedrdlock()</a> - lock a read-write lock for reading 
<li type="disc"><a href="../functions/pthread_rwlock_timedwrlock.html">pthread_rwlock_timedwrlock()</a> - lock a read-write lock for writing 
<li type="disc"><a href="../functions/pthread_rwlock_tryrdlock.html">pthread_rwlock_tryrdlock()</a> - lock a read-write lock object for reading 
<li type="disc"><a href="../functions/pthread_rwlock_trywrlock.html">pthread_rwlock_trywrlock()</a>, pthread_rwlock_wrlock - lock a read-write lock object for writing 
<li type="disc"><a href="../functions/pthread_rwlock_unlock.html">pthread_rwlock_unlock()</a> - unlock a read-write lock object 
<li type="disc"><a href="../functions/pthread_rwlock_wrlock.html">pthread_rwlock_wrlock()</a> - lock a read-write lock object for writing 
<li type="disc"><a href="../functions/pthread_self.html">pthread_self()</a> - get calling thread's ID 
<li type="disc"><a href="../functions/pthread_setcancelstate.html">pthread_setcancelstate()</a>, pthread_setcanceltype, pthread_testcancel - set cancelability state 
<li type="disc"><a href="../functions/pthread_setconcurrency.html">pthread_setconcurrency()</a> - set level of concurrency 
<li type="disc"><a href="../functions/pthread_setschedparam.html">pthread_setschedparam()</a> - dynamic thread scheduling parameters access (<b>REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_setschedprio.html">pthread_setschedprio()</a> - dynamic thread scheduling parameters access (<b>REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_setspecific.html">pthread_setspecific()</a> - thread-specific data management 
<li type="disc"><a href="../functions/pthread_sigmask.html">pthread_sigmask()</a>, sigprocmask - examine and change blocked signals 
<li type="disc"><a href="../functions/pthread_spin_destroy.html">pthread_spin_destroy()</a>, pthread_spin_init - destroy or initialize a spin lock object (<b>ADVANCED REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_spin_init.html">pthread_spin_init()</a> - initialize a spin lock object (<b>ADVANCED REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_spin_lock.html">pthread_spin_lock()</a>, pthread_spin_trylock - lock a spin lock object (<b>ADVANCED REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_spin_trylock.html">pthread_spin_trylock()</a> - lock a spin lock object (<b>ADVANCED REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_spin_unlock.html">pthread_spin_unlock()</a> - unlock a spin lock object (<b>ADVANCED REALTIME THREADS</b>) 
<li type="disc"><a href="../functions/pthread_testcancel.html">pthread_testcancel()</a> - set cancelability state 
</ul>
<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09">Threads Rationale</a>
<ul>
<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_01">Thread Creation Attributes</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_02">Thread Implementation Models</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_03">Thread-Specific Data</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_04">Barriers</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_05">Spin Locks</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_06">XSI Supported Functions</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_07">XSI Threads Extensions</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_08">Thread-Safety</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_09">Thread IDs</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_10">Thread Mutexes</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_11">Thread Scheduling</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_12">Scheduling Contention Scope</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_13">Scheduling Allocation Domain</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_14">Scheduling Documentation</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_15">Scheduling Contention Scope Attribute</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_16">Mixed Scopes</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_17">Dynamic Thread Scheduling Parameters Access</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_18">Mutex Initialization Scheduling Attributes</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_19">Change the Priority Ceiling of a Mutex</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_20">Thread Cancelation</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_21">Specifying the Operation to Cancel</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_22">A Special Signal Versus a Special Interface</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_23">Races Between Cancelation and Resuming Execution</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_24">Interaction of Cancelation with Asynchronous
Signals</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_25">Thread Cancelation Overview</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_26">Thread Read-Write Locks</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_27">Background</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_28">Queuing of Waiting Threads</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_29">Comparison to fcntl() Locks</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_30">History of Resolution Issues</a></li>

<li type="disc"><a href="../xrat/xsh_chap02.html#tag_03_02_09_31">Thread Interactions with Regular File Operations</a></li>
</ul>
</ul>

<center>
<hr size="2" noshade>
<font size="2">
Copyright &copy; 2001-2004 The IEEE and The Open Group, All Rights Reserved<br>
</font></center>
<hr size="2" noshade>
</body>
</html>
